The present disclosure generally relates to the field of data communication over a packet switch network, and more particularly, to a solution that enables the downloading of a media file to an entity that is accessing or requesting such file by means of a media player application.
Today, more and more users, systems and applications search and browse through the Internet, accessing a variety of different web sites that offer access to and the delivery of different media files. This searching and browsing process is generally referred to as “surfing” and the entities performing the surfing are generally referred to as “surfers”. A few non-limiting examples of media files accessible through surfing include video files such as Adobe Flash files, Microsoft Silverlight files, etc. The media files that are available for access and/or download can be embedded within web pages or they can be standalone media files. A few examples of popular web sites that provide a wide variety of media files for access, streaming, downloading, etc., include YouTube, Google Video, Yahoo Video. Many other web sites are also available for gaining access to media files.
Some video files use container-file-format for delivering video files over a Hyper Text Transfer Protocol (HTTP) based network. Usually a surfer can use a video player in order to observe a video file. An exemplary player can be a Flash Player. The player may be an application that can be invoked by the surfer's browser application, an embedded feature of a browser, a stand-alone application and even a stand-alone device. A few examples of such video Players that are commonly used include the Adobe Flash Player and the Microsoft Silverlight player, however, many other players are also available for use.
Within this description and the below-recited claims, the terms “Adobe Flash file”, “Microsoft Silverlight file”, “video file”, any other type of file and “media file” can be used interchangeably and the term “media file” can be used as a representative term for the different types of files.
For a variety of reasons, including the complexity of the technology and the level of clarity and resolution provided, a typical video file can be rather large in size. Consequently, downloading of a typical video file can consume a significant amount of bandwidth and require a considerable amount of time. Although when first introduced, such video files were typically only available for downloading to computers connected via hardwired connections to the Internet, technology has advanced to the point where such video files are available for download over wireless networks to mobile devices. For instance, mobile devices such as, but not limited to, notebook computers, cellular telephones or handsets, handheld computers, Personal Data Assistants (PDA), or other computing device with wireless communication capabilities are able to access, download and view high-definition video content. Although technology advancements have greatly improved the bandwidth available to mobile devices thereby improving the download speed of data, the download time for mobile devices is still somewhat bandwidth limited compared to hardwired access to the Internet and as such, mobile devices can experience considerable delays when downloading video files.
The typical video player can commence the presentment of video content after only a portion of a video file is received and while the remainder of the video file is still being downloaded. Usually, the time required to download a video file is less than the time required to present the video file. Therefore the video data that has been downloaded but that has not yet been rendered or presented by the video player can be stored in a buffer. In many situations, a surfer may decide to stop watching the video or to skip to another web page before reaching the end of the entire video file. Thus, it can be appreciated that for such situations, the buffered video data that was downloaded and stored actually resulted in a waste of bandwidth consumption. For instance, the buffered portion of the video that was not used or viewed required an amount of bandwidth to download and thus, the bandwidth consumed for downloading this non-viewed section of the video file was wasted and could have been allocated to other needs.
Typical video players provided a progress bar that graphically indicates how much of a video file has been downloaded, what portion of the video file had been viewed and where the currently viewed video is located within the file. In addition, such features may also include a “seek” or forward/reverse feature. By pressing on a certain place along the progress bar, a surfer can control the location from which the player will present the next video frames. A common progress bar can illustrate the runtime that is needed for playing the entire received video file. This feature can help to reduce the time and bandwidth wasted in viewing undesired sections of the video file during the downloading of the video file.
More specifically, a typical progress bar can provide several indications. For instance, the progress bar may indicate the current location along the bar of what is being viewed. Other indications can present the location along the time bar of the information stored in the buffer relative to the amount of information that needs to be downloaded. In some applications or players, two types of units can be associated with a progress bar and/or seek request, a time unit (seconds, for example) or a volume/size unit (number of bytes, for example). The type of units can vary from one web site to the other or even from one video file to the other.
Because of their large size and the value of bandwidth, video files are often-times compressed to reduce their volume. Common compression methods can be based on standards such as, but not limited to: H.263, H.264, MPEG2, MPEG4, etc. The H.263 and H.264 methods are International Telecommunication Union (ITU) standards and MPEG2 and MPEG4 are Moving Picture Experts Group (MPEG) standards. More information on the above-identified standards can be found at the web sites available using the following URL information where the symbol <dot> represents a period in the URL: www<dot>itu<dot>int or www<dot>mpeg<dot>org (respectively), the content of which is incorporate herein by reference. Some of the compression methods are more efficient than the others. For instance, the H.264 technique is more efficient than the H.263 technique. Consequently, a video file that is compressed according to the H.264 standard has fewer bytes than the same video file, which compressed according to the H.263 standard without having any adverse affects or degradation of the presentation quality.
A stream of compressed media files that have been compressed using a typical compression technique can include several types of frames. As non-limiting examples, the types of frames can include: an Intra frame, an Inter frame, etc. An Intra frame can also be referred as a key frame. The terms “Intra Frame” and “Key Frame” are used interchangeably throughout this description and the claims. The media data of an Intra frame (key frame) is compressed relative to information that is contained only within the current frame and not relative to any other frame in the media sequence. In contrast to an Intra frame, an Inter frame is a frame in a media compression stream which is expressed in terms of one or more neighboring frames. The present disclosure refers to a key frame or an Intra frame as a frame that can enable proper decoding done on a portion of a media file from the key frame (Intra frame) to the end of the file.
A media file (such as a Flash file, for example) can and typically does include embedded metadata. The embedded metadata can be transmitted before the video data. The metadata may include the location of different Key frames in the compressed media file. For instance, the metadata may identify an offset in data units (bytes, octets, bits, words, etc.) and/or time units within a media file where the beginning of a key frame can be located.
An access network operator (ANO) is the entity that provides, provisions and manages infrastructure that provides access to the Internet for subscribers. Examples of an ANO can be a telecom operator, such as but not limited to: a cellular operator, a satellite communication service provider, a Public Switched Telephone Network (PSTN) operator, Internet Service Provider (ISP) premises, etc. Thus, the main commodity that an ANO delivers is bandwidth and as such, ANOs seek and employ the use of different methods for handling the downloading of media files to improve the utilization of their bandwidth resources. Some of the methods include a buffer limiter which limits the amount of data (i.e., the number of bytes) that can be downloaded by an entity until the entity observes previously downloaded data.
Other methods can reduce the volume or size of the video files that are transferred via an access network. Reduction of the volume of the video files can be done on the fly by converting the format of the media file into streaming and transcoding (converting) the compression standard used into an improved compression standard during downloading of the file. For example, if a media file was compressed according to H.263, an exemplary ANO can transcode the compressed video into H.264 thereby reducing the file size. Such a transcoding can improve the surfer's experience by accelerating the rendering of the video file as well as reducing the bandwidth consumption over the communication links between a surfer and the access network.